// DecisionTree.java
package org.zjx.core;

/**
 * 决策树接口 - 定义决策树的总体行为
 *
 * 决策树是由多个决策节点组成的树形结构，用于根据游戏状态做出决策。
 * 这个接口提供了执行决策和访问根节点的方法。
 */
public interface DecisionTree {
    /**
     * 根据上下文生成动作
     *
     * @param context 决策上下文，包含状态访问器和本地参数
     * @return 游戏动作，可能为null表示无动作
     */
    GameAction decide(DecisionContext context);

    /**
     * 获取根节点(用于调试)
     *
     * @return 决策树的根节点
     */
    DecisionNode getRootNode();
}